package com.example.dto.user;

import com.example.dto.base.Base;
import com.example.dto.dept.Dept;
import com.example.dto.dept.DeptSmall;
import com.example.dto.job.Job;
import com.example.dto.job.JobSmall;
import com.example.dto.role.Role;
import com.example.dto.role.RoleSmall;
import io.swagger.annotations.ApiModelProperty;
import lombok.AllArgsConstructor;
import lombok.Data;

import java.io.Serializable;
import java.util.Date;
import java.util.List;

@Data
@AllArgsConstructor
public class User extends Base implements Serializable {

    @ApiModelProperty(value = "ID", hidden = true)
    private Long id;

    private Dept dept;

    private List<Role> roles;

    private List<Job> jobs;

    private Long deptId;

    private String username;

    private String label;

    private String nickName;

    private String email;

    private String phone;

    private String gender;

    @ApiModelProperty(value = "头像真实名称",hidden = true)
    private String avatarName;

    @ApiModelProperty(value = "头像存储的路径", hidden = true)
    private String avatarPath;

    @ApiModelProperty(value = "用户密码")
    private String password;

    @ApiModelProperty(value = "是否启用")
    private Boolean enabled;

    @ApiModelProperty(value = "是否为admin账号", hidden = true)
    private Boolean isAdmin = false;

    @ApiModelProperty(value = "最后修改密码的时间", hidden = true)
    private Date pwdResetTime;

    public User() {
    }

}
